package cn.jobstart.search;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import cn.jobstart.pubInter.BaseSearch;
import cn.jobstart.model.DouyinMessage;
import java.util.Date;
import java.util.List;
import java.math.BigDecimal;
import lombok.Data;
/**
*   @author xy
*   @Date 2024-01-08 10:38:28
*   @description DouyinMessageSearch      抖音消息(评论管理、私聊管理)
*/


@Data
@ApiModel("抖音消息(评论管理、私聊管理)DouyinMessageSearch")
public abstract class DouyinMessageSearch<Sub extends DouyinMessageSearch<Sub>> extends BaseSearch {
    @ApiModelProperty(value = "主键")
    private List idIn;
    @ApiModelProperty(value = "大于排序")
    private Integer sortNumGreater;
    @ApiModelProperty(value = "小于排序")
    private Integer sortNumLess;
    @ApiModelProperty(value = "是否显示 1:是:Y,0:否:N")
    private List showFlagIn;
    @ApiModelProperty(value = "是否删除 1:删除:Y,0:正常:N")
    private Integer delFlagEq=0;
    @ApiModelProperty(value = "版本")
    private Integer versionEq;
    @ApiModelProperty(value = "消息类型 0:评论:comment,1:私聊:secret_talk,2:回复评论:reply")
    private List typeIn;
    @ApiModelProperty(value = "回复状态 0:未回复:un_reply,1:已回复:replied")
    private List statusIn;
    @ApiModelProperty(value = "根据消息类型 存放对应业务id")
    private String itemIdEq;
    @ApiModelProperty(value = "消息来源的user_id")
    private String fromUserIdEq;
    @ApiModelProperty(value = "开始评论创建时间")
    private Date commentCreateTimeStart;
    @ApiModelProperty(value = "结束评论创建时间")
    private Date commentCreateTimeEnd;
    @ApiModelProperty(value = "大于该评论的点赞数")
    private Integer diggCountGreater;
    @ApiModelProperty(value = "小于该评论的点赞数")
    private Integer diggCountLess;
    @ApiModelProperty(value = "大于该评论的回复数量")
    private Integer replyCommentTotalGreater;
    @ApiModelProperty(value = "小于该评论的回复数量")
    private Integer replyCommentTotalLess;
    @ApiModelProperty(value = "视频id")
    private String videoIdEq;
    @ApiModelProperty(value = "员工账号唯一标识")
    private String openIdEq;
    @ApiModelProperty(value = "消息目的user_id 抖音")
    private String toUserIdEq;
    @ApiModelProperty(value = "大于是否置顶 1:置顶:top,0:未置顶:un_top")
    private Integer topFlagGreater;
    @ApiModelProperty(value = "小于是否置顶 1:置顶:top,0:未置顶:un_top")
    private Integer topFlagLess;
    @ApiModelProperty(value = "内容模板id")
    private String messageTemplateIdEq;
    @ApiModelProperty(value = "该评论回复的评论的评论id")
    private String replyCommentIdEq;
    @ApiModelProperty(value = "系统用户id")
    private String userIdEq;
    @ApiModelProperty(value = "抖音用户昵称")
    private String nickNameLike;
    @ApiModelProperty(value = "会话 ID")
    private String conversationShortIdEq;
    @ApiModelProperty(value = "消息 ID")
    private String serverMessageIdEq;

    public DouyinMessageSearch() {
        setDelFlagEq(0);
    }



    /**
    * 返回子类Sub
    * @return
    */
    public abstract Sub getSubThis();

    @Override
    public String createTimeFiled() {
        return DouyinMessage.CREATE_TIME;
    }
    @Override
    public String updateTimeFiled() {
        return DouyinMessage.UPDATE_TIME;
    }
    @Override
    public String  setDefaultField() {
        return DouyinMessage.CREATE_TIME;
    }
    @Override
    public String pkField() {
        return DouyinMessage.ID;
    }

    @Override
    public String  toString() {
        return "DouyinMessageSearch{}"+super.toString();
    }
    public Sub setIdIn(List idIn){
        this.idIn = idIn;
        setInField(DouyinMessage.ID, idIn);
        return getSubThis();
    }
    public Sub setSortNumGreater(Integer sortNumGreater){
        this.sortNumGreater = sortNumGreater;
        setGreaterField(DouyinMessage.SORT_NUM, sortNumGreater);
        return getSubThis();
    }
    public Sub setSortNumLess(Integer sortNumLess){
        this.sortNumLess = sortNumLess;
        setLessField(DouyinMessage.SORT_NUM, sortNumLess);
        return getSubThis();
    }
    public Sub setShowFlagIn(List showFlagIn){
        this.showFlagIn = showFlagIn;
        setInField(DouyinMessage.SHOW_FLAG, showFlagIn);
        return getSubThis();
    }
    public Sub setDelFlagEq(Integer delFlagEq){
        this.delFlagEq = delFlagEq;
        setEqualField(DouyinMessage.DEL_FLAG, delFlagEq);
        return getSubThis();
    }
    public Sub setVersionEq(Integer versionEq){
        this.versionEq = versionEq;
        setEqualField(DouyinMessage.VERSION, versionEq);
        return getSubThis();
    }
    public Sub setTypeIn(List typeIn){
        this.typeIn = typeIn;
        setInField(DouyinMessage.TYPE, typeIn);
        return getSubThis();
    }
    public Sub setStatusIn(List statusIn){
        this.statusIn = statusIn;
        setInField(DouyinMessage.STATUS, statusIn);
        return getSubThis();
    }
    public Sub setItemIdEq(String itemIdEq){
        this.itemIdEq = itemIdEq;
        setEqualField(DouyinMessage.ITEM_ID, itemIdEq);
        return getSubThis();
    }
    public Sub setFromUserIdEq(String fromUserIdEq){
        this.fromUserIdEq = fromUserIdEq;
        setEqualField(DouyinMessage.FROM_USER_ID, fromUserIdEq);
        return getSubThis();
    }
    public Sub setCommentCreateTimeStart(Date commentCreateTimeStart){
        this.commentCreateTimeStart = commentCreateTimeStart;
        setDateStartField(DouyinMessage.COMMENT_CREATE_TIME, commentCreateTimeStart);
        return getSubThis();
    }
    public Sub setCommentCreateTimeEnd(Date commentCreateTimeEnd){
        this.commentCreateTimeEnd = commentCreateTimeEnd;
        setDateEndField(DouyinMessage.COMMENT_CREATE_TIME, commentCreateTimeEnd);
        return getSubThis();
    }
    public Sub setDiggCountGreater(Integer diggCountGreater){
        this.diggCountGreater = diggCountGreater;
        setGreaterField(DouyinMessage.DIGG_COUNT, diggCountGreater);
        return getSubThis();
    }
    public Sub setDiggCountLess(Integer diggCountLess){
        this.diggCountLess = diggCountLess;
        setLessField(DouyinMessage.DIGG_COUNT, diggCountLess);
        return getSubThis();
    }
    public Sub setReplyCommentTotalGreater(Integer replyCommentTotalGreater){
        this.replyCommentTotalGreater = replyCommentTotalGreater;
        setGreaterField(DouyinMessage.REPLY_COMMENT_TOTAL, replyCommentTotalGreater);
        return getSubThis();
    }
    public Sub setReplyCommentTotalLess(Integer replyCommentTotalLess){
        this.replyCommentTotalLess = replyCommentTotalLess;
        setLessField(DouyinMessage.REPLY_COMMENT_TOTAL, replyCommentTotalLess);
        return getSubThis();
    }
    public Sub setVideoIdEq(String videoIdEq){
        this.videoIdEq = videoIdEq;
        setEqualField(DouyinMessage.VIDEO_ID, videoIdEq);
        return getSubThis();
    }
    public Sub setOpenIdEq(String openIdEq){
        this.openIdEq = openIdEq;
        setEqualField(DouyinMessage.OPEN_ID, openIdEq);
        return getSubThis();
    }
    public Sub setToUserIdEq(String toUserIdEq){
        this.toUserIdEq = toUserIdEq;
        setEqualField(DouyinMessage.TO_USER_ID, toUserIdEq);
        return getSubThis();
    }
    public Sub setTopFlagGreater(Integer topFlagGreater){
        this.topFlagGreater = topFlagGreater;
        setGreaterField(DouyinMessage.TOP_FLAG, topFlagGreater);
        return getSubThis();
    }
    public Sub setTopFlagLess(Integer topFlagLess){
        this.topFlagLess = topFlagLess;
        setLessField(DouyinMessage.TOP_FLAG, topFlagLess);
        return getSubThis();
    }
    public Sub setMessageTemplateIdEq(String messageTemplateIdEq){
        this.messageTemplateIdEq = messageTemplateIdEq;
        setEqualField(DouyinMessage.MESSAGE_TEMPLATE_ID, messageTemplateIdEq);
        return getSubThis();
    }
    public Sub setReplyCommentIdEq(String replyCommentIdEq){
        this.replyCommentIdEq = replyCommentIdEq;
        setEqualField(DouyinMessage.REPLY_COMMENT_ID, replyCommentIdEq);
        return getSubThis();
    }
    public Sub setUserIdEq(String userIdEq){
        this.userIdEq = userIdEq;
        setEqualField(DouyinMessage.USER_ID, userIdEq);
        return getSubThis();
    }
    public Sub setNickNameLike(String nickNameLike){
        this.nickNameLike = nickNameLike;
        setLikeField(DouyinMessage.NICK_NAME, nickNameLike);
        return getSubThis();
    }
    public Sub setConversationShortIdEq(String conversationShortIdEq){
        this.conversationShortIdEq = conversationShortIdEq;
        setEqualField(DouyinMessage.CONVERSATION_SHORT_ID, conversationShortIdEq);
        return getSubThis();
    }
    public Sub setServerMessageIdEq(String serverMessageIdEq){
        this.serverMessageIdEq = serverMessageIdEq;
        setEqualField(DouyinMessage.SERVER_MESSAGE_ID, serverMessageIdEq);
        return getSubThis();
    }
}